package com.easylinkin.sm.service;

import java.util.Collection;

import com.easylinkin.sm.entity.Role;

import site.morn.boot.data.CrudService;
import site.morn.boot.data.DisplayableService;

/**
 * 角色服务
 *
 * @author majintao
 * @since 1.0.0, 2019/8/15
 */
public interface RoleService extends CrudService<Role, Long>, DisplayableService<Role, Long> {

  /**
   * 查询用户所属角色
   *
   * @param userId 用户ID
   * @return 用户所属角色
   */
  Collection<Role> getByUserId(Long userId);

  /**
   * 查询当前用户可见角色列表
   * @return
   */
  Collection<Role> getRolesForCurrentUser(Long departmentId);

  /**
   * 查询当前用户可见角色列表
   * @return
   */
  Collection<Role> getRolesByDepartmentId(Long departmentId);

}
